﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace TES.WEB.EnteRegulador
{
    public class ComparadorMockMerge : IComparer<MockMerge>
    {
        private string _propiedad;
        #region IComparer<MockMerge>      Members

        public ComparadorMockMerge(string propiedad)
        {
            _propiedad = propiedad;
        }

        public int Compare(MockMerge mock1, MockMerge mock2)
        {
            int returnValue = 1;
            if (mock1 != null && mock1 != null)
            {
                switch (_propiedad)
                {
                    case "NumeroRed": returnValue = mock2.NumeroRed.CompareTo(mock1.NumeroRed); break;
                    case "Enlace": returnValue = mock2.Enlace.CompareTo(mock1.Enlace); break;
                    case "Regional": returnValue = mock2.Regional.CompareTo(mock1.Regional); break;
                    case "EstadoEnlace": returnValue = mock2.EstadoEnlace.CompareTo(mock1.EstadoEnlace); break;
                    case "EstadoLegalizacion": returnValue = mock2.EstadoLegalizacion.CompareTo(mock1.EstadoLegalizacion); break;
                    case "Completo": returnValue = mock2.Completo.CompareTo(mock1.Completo); break;
                    case "Implementado": returnValue = mock2.Implementado.CompareTo(mock1.Implementado); break;                   
                }
            }

            return returnValue;
        }

        #endregion
    }

    public class ComparadorDetallesEnlace : IComparer<DetallesEnlace>
    {
        private string _propiedad;
        #region IComparer<MockMerge>      Members

        public ComparadorDetallesEnlace(string propiedad)
        {
            _propiedad = propiedad;
        }

        public int Compare(DetallesEnlace detalles1, DetallesEnlace detalles2)
        {
            int returnValue = 1;
            if (detalles1 != null && detalles1 != null)
            {
                switch (_propiedad)
                {
                    case "NumeroRed": returnValue = detalles2.NumeroRed.CompareTo(detalles1.NumeroRed); break;
                    case "Enlace": returnValue = detalles2.Enlace.CompareTo(detalles1.Enlace); break;
                    case "Regional": returnValue = detalles2.Regional.CompareTo(detalles1.Regional); break;
                    case "EstadoEnlace": returnValue = detalles2.EstadoEnlace.CompareTo(detalles1.EstadoEnlace); break;
                    case "EstadoLegalizacion": returnValue = detalles2.EstadoLegalizacion.CompareTo(detalles1.EstadoLegalizacion); break;
                    case "Completo": returnValue = detalles2.Completo.CompareTo(detalles1.Completo); break;
                    
                }
            }

            return returnValue;
        }

        #endregion
    }


}
